package com.ruoyi.bom.domain;

import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 产品BOM对象 erp_product_bom
 * 
 * @author ruoyi
 * @date 2025-08-25
 */
public class ErpProductBom extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 主键 */
    private Long productId;

    /** 母件编码 */
    @Excel(name = "母件编码")
    private String parentMaterialId;

    /** 物料名称 */
    @Excel(name = "物料名称")
    private String parentMaterialName;

    /** 物料规格 */
    @Excel(name = "物料规格")
    private String specification;

    /** 版本日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "版本日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date versionDate;

    /** 审核状态 */
    @Excel(name = "审核状态")
    private Long approvalStatus;

    /** 附件上传状态 */
    @Excel(name = "附件上传状态")
    private Long attachmentStatus;

    /** 创建人 */
    @Excel(name = "创建人")
    private String createdBy;

    /** 创建日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "创建日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date createdDate;

    /** 最后修改人 */
    @Excel(name = "最后修改人")
    private String lastModifiedBy;

    /** 最后修改日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "最后修改日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date lastModifiedDate;

    public void setProductId(Long productId) 
    {
        this.productId = productId;
    }

    public Long getProductId() 
    {
        return productId;
    }

    public void setParentMaterialId(String parentMaterialId) 
    {
        this.parentMaterialId = parentMaterialId;
    }

    public String getParentMaterialId() 
    {
        return parentMaterialId;
    }

    public void setParentMaterialName(String parentMaterialName) 
    {
        this.parentMaterialName = parentMaterialName;
    }

    public String getParentMaterialName() 
    {
        return parentMaterialName;
    }

    public void setSpecification(String specification) 
    {
        this.specification = specification;
    }

    public String getSpecification() 
    {
        return specification;
    }

    public void setVersionDate(Date versionDate) 
    {
        this.versionDate = versionDate;
    }

    public Date getVersionDate() 
    {
        return versionDate;
    }

    public void setApprovalStatus(Long approvalStatus) 
    {
        this.approvalStatus = approvalStatus;
    }

    public Long getApprovalStatus() 
    {
        return approvalStatus;
    }

    public void setAttachmentStatus(Long attachmentStatus) 
    {
        this.attachmentStatus = attachmentStatus;
    }

    public Long getAttachmentStatus() 
    {
        return attachmentStatus;
    }

    public void setCreatedBy(String createdBy) 
    {
        this.createdBy = createdBy;
    }

    public String getCreatedBy() 
    {
        return createdBy;
    }

    public void setCreatedDate(Date createdDate) 
    {
        this.createdDate = createdDate;
    }

    public Date getCreatedDate() 
    {
        return createdDate;
    }

    public void setLastModifiedBy(String lastModifiedBy) 
    {
        this.lastModifiedBy = lastModifiedBy;
    }

    public String getLastModifiedBy() 
    {
        return lastModifiedBy;
    }

    public void setLastModifiedDate(Date lastModifiedDate) 
    {
        this.lastModifiedDate = lastModifiedDate;
    }

    public Date getLastModifiedDate() 
    {
        return lastModifiedDate;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("productId", getProductId())
            .append("parentMaterialId", getParentMaterialId())
            .append("parentMaterialName", getParentMaterialName())
            .append("specification", getSpecification())
            .append("versionDate", getVersionDate())
            .append("approvalStatus", getApprovalStatus())
            .append("attachmentStatus", getAttachmentStatus())
            .append("createdBy", getCreatedBy())
            .append("createdDate", getCreatedDate())
            .append("lastModifiedBy", getLastModifiedBy())
            .append("lastModifiedDate", getLastModifiedDate())
            .toString();
    }
}
